﻿using System;
using System.Collections.Generic;
using System.IO;
using SharpSqlAnalyzer.nodes;
using SharpSqlAnalyzer.nodes.mdx;

namespace SharpSqlAnalyzer
{
	// Token: 0x0200005E RID: 94
	internal class TParserMdx : TCustomParser
	{
		// Token: 0x060001B5 RID: 437 RVA: 0x000EA6A9 File Offset: 0x000E88A9
		static TParserMdx()
		{
			TParserMdx.inittable();
		}

		// Token: 0x060001B6 RID: 438 RVA: 0x000EA6BA File Offset: 0x000E88BA
		internal TParserMdx(TSourceTokenList sourcetokens)
		{
			this.dbvendor = EDbVendor.dbvmdx;
			this.sourcetokenlist = sourcetokens;
		}

		// Token: 0x060001B7 RID: 439 RVA: 0x000EA6D4 File Offset: 0x000E88D4
		internal static void inittable()
		{
			int num = 1;
			int num2 = 1;
			int num3 = 1;
			int num4 = 1;
			int num5 = 1;
			int num6 = 1;
			int num7 = 0;
			int num8 = 0;
			int num9 = 0;
			int num10 = 0;
			int num11 = 0;
			bool flag = false;
			bool flag2 = false;
			bool flag3 = false;
			bool flag4 = false;
			bool flag5 = false;
			bool flag6 = false;
			bool flag7 = false;
			bool flag8 = false;
			bool flag9 = false;
			bool flag10 = false;
			bool flag11 = false;
			StreamReader streamReader = TCustomLexer.readSymbolTable("mdx", "yacc");
			try
			{
				string text;
				while ((text = streamReader.ReadLine()) != null)
				{
					if (text.Trim().StartsWith("yynacts =", StringComparison.Ordinal))
					{
						TParserMdx.yynacts = int.Parse(text.Split(new char[]
						{
							'=',
							';'
						}, StringSplitOptions.RemoveEmptyEntries)[1].Trim());
						TParserMdx.yya_sym = new int[TParserMdx.yynacts + 1];
						TParserMdx.yya_act = new int[TParserMdx.yynacts + 1];
					}
					else if (text.Trim().StartsWith("yyngotos =", StringComparison.Ordinal))
					{
						TParserMdx.yyngotos = int.Parse(text.Split(new char[]
						{
							'=',
							';'
						}, StringSplitOptions.RemoveEmptyEntries)[1].Trim());
						TParserMdx.yyg_sym = new int[TParserMdx.yyngotos + 1];
						TParserMdx.yyg_act = new int[TParserMdx.yyngotos + 1];
					}
					else if (text.Trim().StartsWith("yynrules =", StringComparison.Ordinal))
					{
						TParserMdx.yynrules = int.Parse(text.Split(new char[]
						{
							'=',
							';'
						}, StringSplitOptions.RemoveEmptyEntries)[1].Trim());
						TParserMdx.yyr_len = new int[TParserMdx.yynrules + 1];
						TParserMdx.yyr_sym = new int[TParserMdx.yynrules + 1];
					}
					else if (text.Trim().StartsWith("yynstates =", StringComparison.Ordinal))
					{
						TParserMdx.yynstates = int.Parse(text.Split(new char[]
						{
							'=',
							';'
						}, StringSplitOptions.RemoveEmptyEntries)[1].Trim());
						TParserMdx.yyd = new int[TParserMdx.yynstates];
						TParserMdx.yyal = new int[TParserMdx.yynstates];
						TParserMdx.yyah = new int[TParserMdx.yynstates];
						TParserMdx.yygl = new int[TParserMdx.yynstates];
						TParserMdx.yygh = new int[TParserMdx.yynstates];
					}
					else if (text.Trim().StartsWith(";", StringComparison.Ordinal))
					{
						if (flag)
						{
							flag = false;
							if (TParserMdx.yynacts + 1 != num)
							{
								Console.WriteLine("required:" + TParserMdx.yynacts.ToString() + " actually:" + (num - 1).ToString());
							}
						}
						else if (flag2)
						{
							flag2 = false;
							if (TParserMdx.yynacts + 1 != num2)
							{
								Console.WriteLine("required:" + TParserMdx.yynacts.ToString() + " actually:" + (num2 - 1).ToString());
							}
						}
						else if (flag3)
						{
							flag3 = false;
							if (TParserMdx.yyngotos + 1 != num3)
							{
								Console.WriteLine("required:" + TParserMdx.yyngotos.ToString() + " actually:" + (num3 - 1).ToString());
							}
						}
						else if (flag4)
						{
							flag4 = false;
							if (TParserMdx.yyngotos + 1 != num4)
							{
								Console.WriteLine("required:" + TParserMdx.yyngotos.ToString() + " actually:" + (num4 - 1).ToString());
							}
						}
						else if (flag5)
						{
							flag5 = false;
							if (TParserMdx.yynrules + 1 != num5)
							{
								Console.WriteLine("required:" + TParserMdx.yynrules.ToString() + " actually:" + (num5 - 1).ToString());
							}
						}
						else if (flag6)
						{
							flag6 = false;
							if (TParserMdx.yynrules + 1 != num6)
							{
								Console.WriteLine("required:" + TParserMdx.yynrules.ToString() + " actually:" + (num6 - 1).ToString());
							}
						}
						else if (flag7)
						{
							flag7 = false;
							if (TParserMdx.yynstates != num7)
							{
								Console.WriteLine("required:" + TParserMdx.yynstates.ToString() + " actually:" + num7.ToString());
							}
						}
						else if (flag8)
						{
							flag8 = false;
							if (TParserMdx.yynstates != num8)
							{
								Console.WriteLine("required:" + TParserMdx.yynstates.ToString() + " actually:" + num8.ToString());
							}
						}
						else if (flag9)
						{
							flag9 = false;
							if (TParserMdx.yynstates != num9)
							{
								Console.WriteLine("required:" + TParserMdx.yynstates.ToString() + " actually:" + num9.ToString());
							}
						}
						else if (flag10)
						{
							flag10 = false;
							if (TParserMdx.yynstates != num10)
							{
								Console.WriteLine("required:" + TParserMdx.yynstates.ToString() + " actually:" + num10.ToString());
							}
						}
						else if (flag11)
						{
							flag11 = false;
							if (TParserMdx.yynstates != num11)
							{
								Console.WriteLine("required:" + TParserMdx.yynstates.ToString() + " actually:" + num11.ToString());
							}
						}
					}
					else if (text.Trim().StartsWith("yya_sym =", StringComparison.Ordinal))
					{
						flag = true;
					}
					else if (text.Trim().StartsWith("yya_act =", StringComparison.Ordinal))
					{
						flag2 = true;
					}
					else if (text.Trim().StartsWith("yyg_sym =", StringComparison.Ordinal))
					{
						flag3 = true;
					}
					else if (text.Trim().StartsWith("yyg_act =", StringComparison.Ordinal))
					{
						flag4 = true;
					}
					else if (text.Trim().StartsWith("yyr_sym =", StringComparison.Ordinal))
					{
						flag5 = true;
					}
					else if (text.Trim().StartsWith("yyr_len =", StringComparison.Ordinal))
					{
						flag6 = true;
					}
					else if (text.Trim().StartsWith("yyd =", StringComparison.Ordinal))
					{
						flag7 = true;
					}
					else if (text.Trim().StartsWith("yyal =", StringComparison.Ordinal))
					{
						flag8 = true;
					}
					else if (text.Trim().StartsWith("yyah =", StringComparison.Ordinal))
					{
						flag9 = true;
					}
					else if (text.Trim().StartsWith("yygl =", StringComparison.Ordinal))
					{
						flag10 = true;
					}
					else if (text.Trim().StartsWith("yygh =", StringComparison.Ordinal))
					{
						flag11 = true;
					}
					else if (text.Trim().Length != 0)
					{
						if (flag)
						{
							string[] array = text.Split(new char[]
							{
								','
							}, StringSplitOptions.RemoveEmptyEntries);
							for (int i = 0; i < array.Length; i++)
							{
								TParserMdx.yya_sym[num++] = int.Parse(array[i].Trim());
							}
						}
						else if (flag2)
						{
							string[] array2 = text.Split(new char[]
							{
								','
							}, StringSplitOptions.RemoveEmptyEntries);
							for (int j = 0; j < array2.Length; j++)
							{
								TParserMdx.yya_act[num2++] = int.Parse(array2[j].Trim());
							}
						}
						else if (flag3)
						{
							string[] array3 = text.Split(new char[]
							{
								','
							}, StringSplitOptions.RemoveEmptyEntries);
							for (int k = 0; k < array3.Length; k++)
							{
								TParserMdx.yyg_sym[num3++] = int.Parse(array3[k].Trim());
							}
						}
						else if (flag4)
						{
							string[] array4 = text.Split(new char[]
							{
								','
							}, StringSplitOptions.RemoveEmptyEntries);
							for (int l = 0; l < array4.Length; l++)
							{
								TParserMdx.yyg_act[num4++] = int.Parse(array4[l].Trim());
							}
						}
						else if (flag5)
						{
							string[] array5 = text.Split(new char[]
							{
								','
							}, StringSplitOptions.RemoveEmptyEntries);
							for (int m = 0; m < array5.Length; m++)
							{
								TParserMdx.yyr_sym[num5++] = int.Parse(array5[m].Trim());
							}
						}
						else if (flag6)
						{
							string[] array6 = text.Split(new char[]
							{
								','
							}, StringSplitOptions.RemoveEmptyEntries);
							for (int n = 0; n < array6.Length; n++)
							{
								TParserMdx.yyr_len[num6++] = int.Parse(array6[n].Trim());
							}
						}
						else if (flag7)
						{
							string[] array7 = text.Split(new char[]
							{
								','
							}, StringSplitOptions.RemoveEmptyEntries);
							for (int num12 = 0; num12 < array7.Length; num12++)
							{
								TParserMdx.yyd[num7++] = int.Parse(array7[num12].Trim());
							}
						}
						else if (flag8)
						{
							string[] array8 = text.Split(new char[]
							{
								','
							}, StringSplitOptions.RemoveEmptyEntries);
							for (int num13 = 0; num13 < array8.Length; num13++)
							{
								TParserMdx.yyal[num8++] = int.Parse(array8[num13].Trim());
							}
						}
						else if (flag9)
						{
							string[] array9 = text.Split(new char[]
							{
								','
							}, StringSplitOptions.RemoveEmptyEntries);
							for (int num14 = 0; num14 < array9.Length; num14++)
							{
								TParserMdx.yyah[num9++] = int.Parse(array9[num14].Trim());
							}
						}
						else if (flag10)
						{
							string[] array10 = text.Split(new char[]
							{
								','
							}, StringSplitOptions.RemoveEmptyEntries);
							for (int num15 = 0; num15 < array10.Length; num15++)
							{
								TParserMdx.yygl[num10++] = int.Parse(array10[num15].Trim());
							}
						}
						else if (flag11)
						{
							string[] array11 = text.Split(new char[]
							{
								','
							}, StringSplitOptions.RemoveEmptyEntries);
							for (int num16 = 0; num16 < array11.Length; num16++)
							{
								TParserMdx.yygh[num11++] = int.Parse(array11[num16].Trim());
							}
						}
					}
				}
			}
			catch (IOException ex)
			{
				Console.WriteLine(ex.ToString());
			}
		}

		// Token: 0x060001B8 RID: 440 RVA: 0x000EB070 File Offset: 0x000E9270
		public override int yyparse()
		{
			int num = 0;
			int[] array = new int[this.yymaxdepth + 1];
			TDatabaseYYSType yyval = null;
			this.curtokenpos = 0;
			int num2 = this.dobefore_yyparse();
			if (num2 == -1)
			{
				return 0;
			}
			int num3 = 0;
			int num4 = 0;
			int num5 = -1;
			int num6 = 0;
			this.yysp = 0;
			bool flag = false;
			bool flag2 = false;
			bool flag3 = false;
			bool flag4 = false;
			int num7 = num4;
			int yysp = this.yysp;
			this.isbeginofbatch = true;
			for (;;)
			{
				this.yysp++;
				if (this.yysp > this.yymaxdepth)
				{
					break;
				}
				array[this.yysp] = num4;
				this.yyv[this.yysp] = this.yyval;
				int num8;
				for (;;)
				{
					if (TParserMdx.yyd[num4] == 0 && num5 == -1)
					{
						do
						{
							num5 = this.yylexwrap(true);
							if (num5 < 0)
							{
								num5 = 0;
							}
						}
						while (num5 == 258 || num5 == 257 || num5 == 259 || num5 == 260 || num5 == 273);
						if (num5 == 0)
						{
							if (this.sourcetokenlist.get(this.sourcetokenlist.size() - 1).tokencode != 0)
							{
								this.yylval.yyTSourceToken = new TSourceToken(" ");
								this.yylval.yyTSourceToken.container = this.sourcetokenlist;
								this.yylval.yyTSourceToken.tokencode = 0;
								this.yylval.yyTSourceToken.posinlist = this.sourcetokenlist.size() - 1;
								this.curtokenpos = this.sourcetokenlist.size();
							}
							else
							{
								this.yylval.yyTSourceToken = this.sourcetokenlist.get(this.sourcetokenlist.size() - 1);
							}
						}
						this.currentsourcetoken = this.yylval.yyTSourceToken;
					}
					if (!flag)
					{
						num = TParserMdx.yyd[num4];
						if (num != 0)
						{
							goto Block_14;
						}
						bool flag5 = this.yyact(num4, num5, this.retvalue);
						if (flag5)
						{
							num = this.retvalue[0];
						}
						if (flag5)
						{
							goto IL_39B;
						}
						num8 = this.aopAbort;
						bool flag6 = false;
						int num9 = 0;
						if (this.yylval.yyTSourceToken.tokencode >= 301 && this.yylval.yyTSourceToken.tokencode != 329)
						{
							this.yylval.yyTSourceToken.tokencode = 264;
							this.yylval.yyTSourceToken.tokentype = ETokenType.ttidentifier;
							num8 = this.aopContinue;
							num9 = 1;
						}
						else
						{
							num8 = this.aopAbort;
						}
						if (num8 == this.aopAbort)
						{
							flag = true;
						}
						if (!flag)
						{
							if (num8 == this.aopContinue && (this.recovertoken != null || num5 != 0 || (num5 == 0 && this.curtokenpos <= this.yylval.yyTSourceToken.container.size() - 1)))
							{
								this.curtokenpos -= num9;
								if (flag6)
								{
									if (num3 == 1)
									{
										num4 = num7;
										this.yysp--;
									}
									if (num3 == 2)
									{
										goto Block_27;
									}
									num3 = 0;
								}
								num5 = -1;
								num8 = this.aopAbort;
								continue;
							}
							flag = true;
						}
					}
					if (flag)
					{
						flag = false;
						if (this.dbvendor != EDbVendor.dbvmssql)
						{
							goto IL_7FE;
						}
						if (num6 <= 2)
						{
							goto Block_32;
						}
						if (num5 == 0)
						{
							goto Block_53;
						}
						num5 = -1;
						this.stmtendpos = this.curtokenpos - 1;
						this.sourcetokenlist.get(this.curtokenpos - 1).tokenstatus = ETokenStatus.tssynataxerror;
					}
				}
				IL_813:
				if (flag2)
				{
					flag2 = false;
					continue;
				}
				if (flag4)
				{
					flag4 = false;
					num7 = num4;
					num3 = 1;
					yysp = this.yysp;
					yyval = this.yyval;
					if (num6 > 0 && num5 != this._error)
					{
						if (this.dbvendor == EDbVendor.dbvmssql)
						{
							this.nextstmtstartpos = this.curtokenpos - 1;
						}
						num6--;
					}
					num4 = num;
					num5 = -1;
					this.yyval = new TDatabaseYYSType();
					this.yyval.copy(this.yylval);
					if (num2 > 0)
					{
						num2--;
					}
					if (this.dbvendor == EDbVendor.dbvmssql)
					{
						this.stmtendpos = this.curtokenpos - 1;
						this.acceptedtoken = this.currentsourcetoken;
						continue;
					}
					continue;
				}
				else
				{
					if (!flag3)
					{
						continue;
					}
					flag3 = false;
					if (this.dbvendor == EDbVendor.dbvmssql)
					{
						this.currentyystate = num4;
						this.currentyysp = this.yysp;
						this.currentyyn = num;
					}
					this.yyflag = this.yyfnone;
					this.yyval = new TDatabaseYYSType();
					this.yyaction(-num);
					num3 = 2;
					this.yysp -= TParserMdx.yyr_len[-num];
					if (this.yygoto(array[this.yysp], TParserMdx.yyr_sym[-num], this.retvalue))
					{
						num = this.retvalue[0];
						num4 = num;
					}
					switch (this.yyflag)
					{
					case 1:
						goto IL_978;
					case 2:
						goto IL_9A3;
					case 3:
						goto IL_A0D;
					default:
						continue;
					}
				}
				Block_14:
				flag3 = true;
				goto IL_813;
				Block_27:
				num4 = num7;
				this.yyval = yyval;
				this.yysp = yysp - 1;
				num5 = -1;
				num8 = this.aopAbort;
				num3 = 0;
				flag2 = true;
				goto IL_813;
				IL_39B:
				if (num > 0)
				{
					flag4 = true;
					goto IL_813;
				}
				if (num < 0)
				{
					flag3 = true;
					goto IL_813;
				}
				return 0;
				Block_32:
				num6 = 3;
				int num10;
				if (this.yyact(array[this.yysp], this._error, this.retvalue) && (num = this.retvalue[0]) < 0)
				{
					bool flag7 = false;
					num10 = this.yysp;
					num10 -= TParserMdx.yyr_len[-num];
					if (this.yygoto(array[num10], TParserMdx.yyr_sym[-num], this.retvalue))
					{
						int num11 = this.retvalue[0];
						if (TParserMdx.yyd[num11] != 0)
						{
							flag7 = true;
						}
						else if (num10 == 1)
						{
							flag7 = true;
						}
					}
					if (flag7)
					{
						this.geterrormsg(num4, num5, 10100);
						this.errorstmtstarttoken = this.sourcetokenlist.get(this.curtokenpos - 1);
						this.curtokenpos--;
						num5 = this._error;
						flag3 = true;
						goto IL_813;
					}
				}
				num10 = this.yysp;
				while (this.yysp > 0 && (!this.yyact(array[this.yysp], this._error, this.retvalue) || (num = this.retvalue[0]) <= 0))
				{
					this.yysp--;
				}
				if (num10 != this.yysp)
				{
					this.geterrormsg(num4, num5, 10101);
				}
				if (this.yysp == 0)
				{
					goto Block_42;
				}
				this.errorstmtstarttoken = null;
				if (num10 == this.yysp)
				{
					this.errorstmtstarttoken = this.sourcetokenlist.get(this.curtokenpos - 1);
				}
				if (this.errorstmtstarttoken == null)
				{
					for (int i = this.yysp + 1; i < num10 + 1; i++)
					{
						if (this.yyv[i].yyTSourceToken != null)
						{
							this.errorstmtstarttoken = this.yyv[i].yyTSourceToken;
							break;
						}
					}
				}
				if (this.errorstmtstarttoken == null)
				{
					int num12 = this.yysp;
					while (num12 > 0 && this.yyv[num12].yyTSourceToken == null)
					{
						num12--;
					}
				}
				if (this.errorstmtstarttoken == null)
				{
					int num13 = this.curtokenpos - 1;
					while (num13 >= 0 && this.sourcetokenlist.get(num13).tokenstatus != ETokenStatus.tssynataxerror)
					{
						this.errorstmtstarttoken = this.sourcetokenlist.get(num13);
						num13--;
					}
				}
				if (this.errorstmtstarttoken != null)
				{
					for (int j = this.errorstmtstarttoken.posinlist; j < this.curtokenpos; j++)
					{
						if (this.sourcetokenlist.get(j).tokenstatus != ETokenStatus.tssynataxerror)
						{
							this.errorstmtstarttoken = this.sourcetokenlist.get(j);
							break;
						}
					}
				}
				if (this.errorstmtstarttoken != null)
				{
					for (int k = this.errorstmtstarttoken.posinlist; k < this.curtokenpos; k++)
					{
						this.sourcetokenlist.get(k).tokenstatus = ETokenStatus.tssynataxerror;
					}
				}
				num4 = num;
				num5 = -1;
				this.stmtendpos = this.curtokenpos - 1;
				flag2 = true;
				goto IL_813;
			}
			this.onparseerrorhandle(EErrorType.spfatalerror, "yyparse stack overflow error 1010", this.currentsourcetoken.astext, this.currentsourcetoken.lineNo, this.currentsourcetoken.columnNo, 10010);
			if (this.dbvendor == EDbVendor.dbvmssql)
			{
				this.onparseerrorhandle(EErrorType.spfatalabort, "abort !!! error 1001", this.currentsourcetoken.astext, this.currentsourcetoken.lineNo, this.currentsourcetoken.columnNo, 10011);
			}
			return 10001;
			Block_42:
			this.onparseerrorhandle(EErrorType.spfatalerror, "error recover failed error", this.currentsourcetoken.astext, this.currentsourcetoken.lineNo, this.currentsourcetoken.columnNo, 10012);
			this.onparseerrorhandle(EErrorType.spfatalabort, "abort !!! error 1001", this.currentsourcetoken.astext, this.currentsourcetoken.lineNo, this.currentsourcetoken.columnNo, 10013);
			return 10003;
			Block_53:
			this.errorstmtstarttoken = null;
			try
			{
				for (int l = this.yysp; l > 0; l--)
				{
					if (this.yyv[l].yyTSourceToken != null)
					{
						this.errorstmtstarttoken = this.yyv[l].yyTSourceToken;
					}
				}
			}
			finally
			{
				this.errorstmtstarttoken = null;
			}
			if (this.errorstmtstarttoken == null)
			{
				this.errorstmtstarttoken = this.sourcetokenlist.get(0);
			}
			for (int m = this.errorstmtstarttoken.posinlist; m < this.curtokenpos; m++)
			{
				this.sourcetokenlist.get(m).tokenstatus = ETokenStatus.tssynataxerror;
			}
			this.onparseerrorhandle(EErrorType.spfatalabort, "abort !!! error 1001", this.currentsourcetoken.astext, this.currentsourcetoken.lineNo, this.currentsourcetoken.columnNo, 10013);
			return 10004;
			IL_7FE:
			this.geterrormsg(num4, num5, 10102);
			return 10102;
			IL_978:
			if (this.dbvendor == EDbVendor.dbvmssql && num6 == 3)
			{
				for (int n = this.nextstmtstartpos; n < this.curtokenpos; n++)
				{
				}
			}
			return 0;
			IL_9A3:
			this.onparseerrorhandle(EErrorType.spfatalerror, "yyfabort error 1004", this.currentsourcetoken.astext, this.currentsourcetoken.lineNo, this.currentsourcetoken.columnNo, 10015);
			this.onparseerrorhandle(EErrorType.spfatalabort, "abort !!! error 1001", this.currentsourcetoken.astext, this.currentsourcetoken.lineNo, this.currentsourcetoken.columnNo, 10014);
			return 10006;
			IL_A0D:
			this.onparseerrorhandle(EErrorType.spfatalerror, "error failed error 1000", this.currentsourcetoken.astext, this.currentsourcetoken.lineNo, this.currentsourcetoken.columnNo, 10016);
			return 10007;
		}

		// Token: 0x060001B9 RID: 441 RVA: 0x000EBAD4 File Offset: 0x000E9CD4
		internal override bool yygoto(int state, int sym, int[] nstate)
		{
			int num = TParserMdx.yygl[state];
			while (num <= TParserMdx.yygh[state] && TParserMdx.yyg_sym[num] != sym)
			{
				num++;
			}
			bool result;
			if (num > TParserMdx.yygh[state])
			{
				result = false;
			}
			else
			{
				nstate[0] = TParserMdx.yyg_act[num];
				result = true;
			}
			return result;
		}

		// Token: 0x060001BA RID: 442 RVA: 0x000EBB20 File Offset: 0x000E9D20
		internal override bool yyact(int state, int sym, int[] act)
		{
			int num = TParserMdx.yyal[state];
			while (num <= TParserMdx.yyah[state] && TParserMdx.yya_sym[num] != sym)
			{
				num++;
			}
			bool result;
			if (num > TParserMdx.yyah[state])
			{
				result = false;
			}
			else
			{
				act[0] = TParserMdx.yya_act[num];
				result = true;
			}
			return result;
		}

		// Token: 0x060001BB RID: 443 RVA: 0x000EBB6C File Offset: 0x000E9D6C
		internal override void yyaction(int yyruleno)
		{
			switch (yyruleno)
			{
			case 1:
				this.rootNode = this.yyv[this.yysp].yyTParseTreeNode;
				return;
			case 2:
				this.rootNode = this.yyv[this.yysp - 1].yyTParseTreeNode;
				return;
			case 3:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 4:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 5:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 6:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 7:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 8:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 9:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 10:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 11:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 12:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxCallNode.getId(), this.yyv[this.yysp - 1].yyTParseTreeNode, null);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 2].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp - 1].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 13:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxCallNode.getId(), this.yyv[this.yysp - 4].yyTParseTreeNode, (List<TMdxExpNode>)this.yyv[this.yysp - 2].yyObject);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 5].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp - 1].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 14:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 15:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 16:
				this.yyval.yyTParseTreeNode = null;
				return;
			case 17:
				this.yyval.yyTParseTreeNode = this.yyv[this.yysp].yyTParseTreeNode;
				return;
			case 18:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxScopeNode.getId(), (List<TMdxExpNode>)this.yyv[this.yysp - 5].yyObject, (List<TParseTreeNode>)this.yyv[this.yysp - 2].yyObject);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 7].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTSourceToken);
				return;
			case 19:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxScopeNode.getId(), (List<TMdxExpNode>)this.yyv[this.yysp - 1].yyObject);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 3].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTSourceToken);
				return;
			case 20:
				this.yyval.yyObject = new List<TParseTreeNode>
				{
					this.yyv[this.yysp].yyTParseTreeNode
				};
				return;
			case 21:
				((List<TParseTreeNode>)this.yyv[this.yysp - 1].yyObject).Add(this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyObject = this.yyv[this.yysp - 1].yyObject;
				return;
			case 22:
				this.yyval.yyTParseTreeNode = this.yyv[this.yysp - 1].yyTParseTreeNode;
				return;
			case 23:
				this.yyval.yyTParseTreeNode = this.yyv[this.yysp - 1].yyTParseTreeNode;
				return;
			case 24:
				this.yyval.yyTParseTreeNode = this.yyv[this.yysp - 1].yyTParseTreeNode;
				return;
			case 25:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxDrillthroughNode.getId(), this.yyv[this.yysp - 1].yyTParseTreeNode, (List<TMdxExpNode>)this.yyv[this.yysp].yyObject);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 3].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp - 1].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken<TMdxExpNode>((List<TMdxExpNode>)this.yyv[this.yysp].yyObject);
				return;
			case 26:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 27:
				this.yyval.yyObject = null;
				return;
			case 28:
				this.yyval.yyObject = this.yyv[this.yysp].yyObject;
				return;
			case 29:
				this.yyval.yyObject = new List<TMdxExpNode>
				{
					(TMdxExpNode)this.yyv[this.yysp].yyTParseTreeNode
				};
				return;
			case 30:
				((List<TMdxExpNode>)this.yyv[this.yysp - 2].yyObject).Add((TMdxExpNode)this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyObject = this.yyv[this.yysp - 2].yyObject;
				return;
			case 31:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 32:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxFunctionNode.getId(), (List<TMdxExpNode>)this.yyv[this.yysp - 1].yyObject, this.yyv[this.yysp - 3].yyTParseTreeNode, EMdxExpSyntax.Function);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 3].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTSourceToken);
				return;
			case 33:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxFunctionNode.getId(), (List<TMdxExpNode>)this.yyv[this.yysp - 1].yyObject, this.nf.createNode(ENodeType.T_MdxNameSegment.getId(), this.yyv[this.yysp - 3].yyTSourceToken, EMdxQuoting.UNQUOTED), EMdxExpSyntax.Function);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 3].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTSourceToken);
				return;
			case 34:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxCreateSessionCubeNode.getId(), this.yyv[this.yysp - 5].yyTParseTreeNode, (List<TMdxIdentifierNode>)this.yyv[this.yysp - 3].yyObject, (List<TMdxObjectNode>)this.yyv[this.yysp - 1].yyObject);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 8].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTSourceToken);
				return;
			case 35:
				((List<TMdxObjectNode>)this.yyv[this.yysp - 2].yyObject).AddRange((List<TMdxObjectNode>)this.yyv[this.yysp].yyObject);
				this.yyval.yyObject = this.yyv[this.yysp - 2].yyObject;
				return;
			case 36:
				((List<TMdxObjectNode>)this.yyv[this.yysp - 2].yyObject).AddRange((List<TMdxObjectNode>)this.yyv[this.yysp].yyObject);
				this.yyval.yyObject = this.yyv[this.yysp - 2].yyObject;
				return;
			case 37:
				this.yyval.yyObject = new List<TMdxObjectNode>
				{
					(TMdxObjectNode)this.yyv[this.yysp].yyTParseTreeNode
				};
				return;
			case 38:
				((List<TMdxObjectNode>)this.yyv[this.yysp - 2].yyObject).Add((TMdxObjectNode)this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyObject = this.yyv[this.yysp - 2].yyObject;
				return;
			case 39:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxMeasureNode.getId(), this.yyv[this.yysp - 2].yyTParseTreeNode, this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 3].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp - 2].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp - 1].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 40:
				this.yyval.yyTParseTreeNode = this.yyv[this.yysp].yyTParseTreeNode;
				return;
			case 41:
			case 106:
			case 247:
			case 258:
				break;
			case 42:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 43:
				this.yyval.yyObject = new List<TMdxObjectNode>
				{
					(TMdxObjectNode)this.yyv[this.yysp].yyTParseTreeNode
				};
				return;
			case 44:
				((List<TMdxObjectNode>)this.yyv[this.yysp - 2].yyObject).Add((TMdxObjectNode)this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyObject = this.yyv[this.yysp - 2].yyObject;
				return;
			case 45:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 46:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 47:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxDimensionNode.getId(), this.yyv[this.yysp - 5].yyTParseTreeNode, this.yyv[this.yysp - 2].yyTParseTreeNode, this.yyv[this.yysp - 1].yyTParseTreeNode, this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 6].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp - 5].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp - 4].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp - 3].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp - 2].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp - 1].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 48:
				this.yyval.yyTParseTreeNode = this.yyv[this.yysp].yyTParseTreeNode;
				return;
			case 49:
				this.yyval.yyTParseTreeNode = null;
				return;
			case 50:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 51:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 52:
				this.yyval.yyTSourceToken = null;
				return;
			case 53:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 54:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 55:
				this.yyval.yyTSourceToken = null;
				return;
			case 56:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 57:
				this.yyval.yyTParseTreeNode = this.yyv[this.yysp].yyTParseTreeNode;
				return;
			case 58:
				this.yyval.yyTParseTreeNode = null;
				return;
			case 59:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 60:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 61:
				this.yyval.yyTParseTreeNode = null;
				return;
			case 62:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxDimContentNode.getId(), (List<TMdxLevelNode>)this.yyv[this.yysp - 1].yyObject, null, null, null);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 2].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTSourceToken);
				return;
			case 63:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxDimContentNode.getId(), (List<TMdxLevelNode>)this.yyv[this.yysp - 3].yyObject, (List<TMdxGroupNode>)this.yyv[this.yysp - 1].yyObject, null, null);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 4].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTSourceToken);
				return;
			case 64:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxDimContentNode.getId(), (List<TMdxLevelNode>)this.yyv[this.yysp - 3].yyObject, null, (List<TMdxMemberNode>)this.yyv[this.yysp - 1].yyObject, null);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 4].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTSourceToken);
				return;
			case 65:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxDimContentNode.getId(), (List<TMdxLevelNode>)this.yyv[this.yysp - 3].yyObject, null, null, this.yyv[this.yysp - 1].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 4].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTSourceToken);
				return;
			case 66:
				this.yyval.yyObject = new List<TMdxLevelNode>
				{
					(TMdxLevelNode)this.yyv[this.yysp].yyTParseTreeNode
				};
				return;
			case 67:
				((List<TMdxLevelNode>)this.yyv[this.yysp - 2].yyObject).Add((TMdxLevelNode)this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyObject = this.yyv[this.yysp - 2].yyObject;
				return;
			case 68:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxLevelNode.getId(), this.yyv[this.yysp - 3].yyTParseTreeNode, this.yyv[this.yysp - 1].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 4].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 69:
				this.yyval.yyTParseTreeNode = this.yyv[this.yysp].yyTParseTreeNode;
				return;
			case 70:
				this.yyval.yyTParseTreeNode = null;
				return;
			case 71:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 72:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 73:
				this.yyval.yyTSourceToken = null;
				return;
			case 74:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 75:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 76:
				this.yyval.yyTParseTreeNode = null;
				return;
			case 77:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxLevelContentNode.getId(), (List<TMdxIdentifierNode>)this.yyv[this.yysp - 1].yyObject);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 2].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTSourceToken);
				return;
			case 78:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxLevelContentNode.getId());
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTSourceToken);
				return;
			case 79:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 80:
				this.yyval.yyObject = this.yyv[this.yysp].yyObject;
				return;
			case 81:
				this.yyval.yyObject = null;
				return;
			case 82:
				this.yyval.yyObject = new List<TMdxGroupNode>
				{
					(TMdxGroupNode)this.yyv[this.yysp].yyTParseTreeNode
				};
				return;
			case 83:
				((List<TMdxGroupNode>)this.yyv[this.yysp - 2].yyObject).Add((TMdxGroupNode)this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyObject = this.yyv[this.yysp - 2].yyObject;
				return;
			case 84:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxGroupNode.getId(), this.yyv[this.yysp - 3].yyTParseTreeNode, (List<TMdxObjectNode>)this.yyv[this.yysp - 1].yyObject);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 4].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTSourceToken);
				return;
			case 85:
				this.yyval.yyObject = new List<TMdxObjectNode>
				{
					(TMdxObjectNode)this.yyv[this.yysp].yyTParseTreeNode
				};
				return;
			case 86:
				((List<TMdxObjectNode>)this.yyv[this.yysp - 2].yyObject).Add((TMdxObjectNode)this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyObject = this.yyv[this.yysp - 2].yyObject;
				return;
			case 87:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 88:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 89:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxMemberNode.getId(), this.yyv[this.yysp].yyTParseTreeNode, null);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 1].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 90:
				this.yyval.yyObject = this.yyv[this.yysp].yyObject;
				return;
			case 91:
				this.yyval.yyObject = null;
				return;
			case 92:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 93:
				this.yyval.yyObject = new List<TMdxMemberNode>
				{
					(TMdxMemberNode)this.yyv[this.yysp].yyTParseTreeNode
				};
				return;
			case 94:
				((List<TMdxMemberNode>)this.yyv[this.yysp - 2].yyObject).Add((TMdxMemberNode)this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyObject = this.yyv[this.yysp - 2].yyObject;
				return;
			case 95:
				this.yyval.yyTParseTreeNode = this.yyv[this.yysp].yyTParseTreeNode;
				return;
			case 96:
				this.yyval.yyTParseTreeNode = null;
				return;
			case 97:
				this.yyval.yyTParseTreeNode = this.yyv[this.yysp].yyTParseTreeNode;
				return;
			case 98:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 99:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxCreateSubCubeNode.getId(), this.yyv[this.yysp - 2].yyTParseTreeNode, this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 4].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 100:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxCreateSubCubeNode.getId(), this.yyv[this.yysp - 6].yyTParseTreeNode, this.yyv[this.yysp - 1].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 8].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTSourceToken);
				return;
			case 101:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxCreateMemberNode.getId(), this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 2].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 102:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxCreateSetNode.getId(), this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 2].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 103:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 104:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 105:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 107:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 108:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 109:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 110:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 111:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 112:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 113:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 114:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 115:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 116:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 117:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxNameSegment.getId(), this.yyv[this.yysp].yyTSourceToken, EMdxQuoting.QUOTED);
				return;
			case 118:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxNameSegment.getId(), this.yyv[this.yysp].yyTSourceToken, EMdxQuoting.UNQUOTED);
				return;
			case 119:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxNameSegment.getId(), this.yyv[this.yysp].yyTSourceToken, EMdxQuoting.UNQUOTED);
				return;
			case 120:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxNameSegment.getId(), this.yyv[this.yysp].yyTSourceToken, EMdxQuoting.UNQUOTED);
				return;
			case 121:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxNameSegment.getId(), this.yyv[this.yysp].yyTSourceToken, EMdxQuoting.QUOTED);
				return;
			case 122:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxNameSegment.getId(), this.yyv[this.yysp].yyTSourceToken, EMdxQuoting.UNQUOTED);
				return;
			case 123:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 124:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 125:
				this.yyval.yyObject = new List<TMdxNameSegment>
				{
					(TMdxNameSegment)this.yyv[this.yysp].yyTParseTreeNode
				};
				return;
			case 126:
				((List<TMdxNameSegment>)this.yyv[this.yysp - 1].yyObject).Add((TMdxNameSegment)this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyObject = this.yyv[this.yysp - 1].yyObject;
				return;
			case 127:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxKeySegment.getId(), (List<TMdxNameSegment>)this.yyv[this.yysp].yyObject);
				return;
			case 128:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 129:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 130:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 131:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxIdentifierNode.getId(), this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 132:
				((TMdxIdentifierNode)this.yyv[this.yysp - 2].yyTParseTreeNode).add((IMdxIdentifierSegment)this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode = this.yyv[this.yysp - 2].yyTParseTreeNode;
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 133:
				((TMdxIdentifierNode)this.yyv[this.yysp - 2].yyTParseTreeNode).add((IMdxIdentifierSegment)this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode = this.yyv[this.yysp - 2].yyTParseTreeNode;
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 134:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 135:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 136:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 137:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 138:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxIdentifierNode.getId(), this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 139:
				if (this.yyv[this.yysp - 2].yyTParseTreeNode is TMdxIdentifierNode)
				{
					((TMdxIdentifierNode)this.yyv[this.yysp - 2].yyTParseTreeNode).add((IMdxIdentifierSegment)this.yyv[this.yysp].yyTParseTreeNode);
					this.yyval.yyTParseTreeNode = this.yyv[this.yysp - 2].yyTParseTreeNode;
				}
				else
				{
					this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxPropertyNode.getId(), this.yyv[this.yysp - 2].yyTParseTreeNode, this.yyv[this.yysp].yyTParseTreeNode, EMdxExpSyntax.Property);
				}
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 2].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 140:
				if (this.yyv[this.yysp - 2].yyTParseTreeNode is TMdxIdentifierNode)
				{
					((TMdxIdentifierNode)this.yyv[this.yysp - 2].yyTParseTreeNode).add((IMdxIdentifierSegment)this.yyv[this.yysp].yyTParseTreeNode);
					this.yyval.yyTParseTreeNode = this.yyv[this.yysp - 2].yyTParseTreeNode;
				}
				else
				{
					this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxPropertyNode.getId(), this.yyv[this.yysp - 2].yyTParseTreeNode, this.yyv[this.yysp].yyTParseTreeNode, EMdxExpSyntax.QuotedProperty);
				}
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 2].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 141:
				if (this.yyv[this.yysp - 2].yyTParseTreeNode is TMdxIdentifierNode)
				{
					((TMdxIdentifierNode)this.yyv[this.yysp - 2].yyTParseTreeNode).add((IMdxIdentifierSegment)this.yyv[this.yysp].yyTParseTreeNode);
					this.yyval.yyTParseTreeNode = this.yyv[this.yysp - 2].yyTParseTreeNode;
				}
				else
				{
					this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxPropertyNode.getId(), this.yyv[this.yysp - 2].yyTParseTreeNode, this.yyv[this.yysp].yyTParseTreeNode, EMdxExpSyntax.AmpersandQuotedProperty);
				}
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 2].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 142:
				((List<TMdxExpNode>)this.yyv[this.yysp - 1].yyObject).Insert(0, (TMdxExpNode)this.yyv[this.yysp - 5].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxFunctionNode.getId(), (List<TMdxExpNode>)this.yyv[this.yysp - 1].yyObject, this.yyv[this.yysp - 3].yyTParseTreeNode, EMdxExpSyntax.Method);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 5].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTSourceToken);
				return;
			case 143:
				if (this.yyv[this.yysp - 2].yyTParseTreeNode is TMdxIdentifierNode)
				{
					((TMdxIdentifierNode)this.yyv[this.yysp - 2].yyTParseTreeNode).add((IMdxIdentifierSegment)this.yyv[this.yysp].yyTParseTreeNode);
					this.yyval.yyTParseTreeNode = this.yyv[this.yysp - 2].yyTParseTreeNode;
				}
				else
				{
					this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxPropertyNode.getId(), this.yyv[this.yysp - 2].yyTParseTreeNode, this.yyv[this.yysp].yyTParseTreeNode, EMdxExpSyntax.Property);
				}
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 2].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 144:
				if (this.yyv[this.yysp - 2].yyTParseTreeNode is TMdxIdentifierNode)
				{
					((TMdxIdentifierNode)this.yyv[this.yysp - 2].yyTParseTreeNode).add((IMdxIdentifierSegment)this.yyv[this.yysp].yyTParseTreeNode);
					this.yyval.yyTParseTreeNode = this.yyv[this.yysp - 2].yyTParseTreeNode;
				}
				else
				{
					this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxPropertyNode.getId(), this.yyv[this.yysp - 2].yyTParseTreeNode, this.yyv[this.yysp].yyTParseTreeNode, EMdxExpSyntax.QuotedProperty);
				}
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 2].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 145:
				if (this.yyv[this.yysp - 2].yyTParseTreeNode is TMdxIdentifierNode)
				{
					((TMdxIdentifierNode)this.yyv[this.yysp - 2].yyTParseTreeNode).add((IMdxIdentifierSegment)this.yyv[this.yysp].yyTParseTreeNode);
					this.yyval.yyTParseTreeNode = this.yyv[this.yysp - 2].yyTParseTreeNode;
				}
				else
				{
					this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxPropertyNode.getId(), this.yyv[this.yysp - 2].yyTParseTreeNode, this.yyv[this.yysp].yyTParseTreeNode, EMdxExpSyntax.AmpersandQuotedProperty);
				}
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 2].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 146:
				((List<TMdxExpNode>)this.yyv[this.yysp - 1].yyObject).Insert(0, (TMdxExpNode)this.yyv[this.yysp - 5].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxFunctionNode.getId(), this.yyv[this.yysp - 1].yyObject, this.yyv[this.yysp - 3].yyTParseTreeNode, EMdxExpSyntax.Method);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 5].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTSourceToken);
				return;
			case 147:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxFunctionNode.getId(), (List<TMdxExpNode>)this.yyv[this.yysp - 1].yyObject, this.yyv[this.yysp - 3].yyTParseTreeNode, EMdxExpSyntax.Function);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 3].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTSourceToken);
				return;
			case 148:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxFunctionNode.getId(), null, this.nf.createNode(ENodeType.T_MdxNameSegment.getId(), this.yyv[this.yysp].yyTSourceToken, EMdxQuoting.UNQUOTED), EMdxExpSyntax.Function);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTSourceToken);
				return;
			case 149:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxFunctionNode.getId(), (List<TMdxExpNode>)this.yyv[this.yysp - 1].yyObject, this.nf.createNode(ENodeType.T_MdxNameSegment.getId(), this.yyv[this.yysp - 3].yyTSourceToken, EMdxQuoting.UNQUOTED), EMdxExpSyntax.Function);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 3].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTSourceToken);
				return;
			case 150:
				this.tmpObject = new List<TMdxExpNode>
				{
					(TMdxExpNode)this.yyv[this.yysp - 3].yyTParseTreeNode
				};
				((List<TMdxExpNode>)this.tmpObject).Add((TMdxExpNode)this.yyv[this.yysp - 1].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxFunctionNode.getId(), this.tmpObject, this.nf.createNode(ENodeType.T_MdxNameSegment.getId(), this.yyv[this.yysp - 5].yyTSourceToken, EMdxQuoting.UNQUOTED), EMdxExpSyntax.Cast);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 5].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTSourceToken);
				return;
			case 151:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxTupleNode.getId(), (List<TMdxExpNode>)this.yyv[this.yysp - 1].yyObject);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 2].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTSourceToken);
				return;
			case 152:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxSetNode.getId(), (List<TMdxExpNode>)this.yyv[this.yysp - 1].yyObject);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 2].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTSourceToken);
				return;
			case 153:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 154:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 155:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxUnaryOpNode.getId(), this.yyv[this.yysp - 1].yyTSourceToken, this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 1].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 156:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxUnaryOpNode.getId(), this.yyv[this.yysp - 1].yyTSourceToken, this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 1].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 157:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 158:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxBinOpNode.getId(), this.yyv[this.yysp - 1].yyTSourceToken, this.yyv[this.yysp - 2].yyTParseTreeNode, this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 2].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 159:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxBinOpNode.getId(), this.yyv[this.yysp - 1].yyTSourceToken, this.yyv[this.yysp - 2].yyTParseTreeNode, this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 2].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 160:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 161:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxBinOpNode.getId(), this.yyv[this.yysp - 1].yyTSourceToken, this.yyv[this.yysp - 2].yyTParseTreeNode, this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 2].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 162:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxBinOpNode.getId(), this.yyv[this.yysp - 1].yyTSourceToken, this.yyv[this.yysp - 2].yyTParseTreeNode, this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 2].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 163:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxBinOpNode.getId(), this.yyv[this.yysp - 1].yyTSourceToken, this.yyv[this.yysp - 2].yyTParseTreeNode, this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 2].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 164:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 165:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxBinOpNode.getId(), this.yyv[this.yysp - 1].yyTSourceToken, this.yyv[this.yysp - 2].yyTParseTreeNode, this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 2].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 166:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxUnaryOpNode.getId(), this.yyv[this.yysp].yyTSourceToken, this.yyv[this.yysp - 2].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 2].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTSourceToken);
				return;
			case 167:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxBinOpNode.getId(), this.yyv[this.yysp - 1].yyTSourceToken, this.yyv[this.yysp - 2].yyTParseTreeNode, this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 2].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 168:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxUnaryOpNode.getId(), this.yyv[this.yysp].yyTSourceToken, this.yyv[this.yysp - 2].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 2].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTSourceToken);
				return;
			case 169:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxBinOpNode.getId(), this.yyv[this.yysp - 1].yyTSourceToken, this.yyv[this.yysp - 2].yyTParseTreeNode, this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 2].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 170:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxBinOpNode.getId(), this.yyv[this.yysp - 1].yyTSourceToken, this.yyv[this.yysp - 3].yyTParseTreeNode, this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 3].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 171:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxBinOpNode.getId(), this.yyv[this.yysp - 1].yyTSourceToken, this.yyv[this.yysp - 2].yyTParseTreeNode, this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 2].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 172:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxBinOpNode.getId(), this.yyv[this.yysp - 1].yyTSourceToken, this.yyv[this.yysp - 3].yyTParseTreeNode, this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 3].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 173:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 174:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxUnaryOpNode.getId(), this.yyv[this.yysp - 1].yyTSourceToken, this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 1].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 175:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 176:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxBinOpNode.getId(), this.yyv[this.yysp - 1].yyTSourceToken, this.yyv[this.yysp - 2].yyTParseTreeNode, this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 2].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 177:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 178:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxBinOpNode.getId(), this.yyv[this.yysp - 1].yyTSourceToken, this.yyv[this.yysp - 2].yyTParseTreeNode, this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 2].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 179:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxBinOpNode.getId(), this.yyv[this.yysp - 1].yyTSourceToken, this.yyv[this.yysp - 2].yyTParseTreeNode, this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 2].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 180:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxCaseNode.getId(), this.yyv[this.yysp - 3].yyTParseTreeNode, (List<TMdxExpNode>)this.yyv[this.yysp - 2].yyObject, this.yyv[this.yysp - 1].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 4].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTSourceToken);
				return;
			case 181:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 182:
				this.yyval.yyTParseTreeNode = null;
				return;
			case 183:
				((List<TMdxExpNode>)this.yyv[this.yysp - 1].yyObject).Add((TMdxExpNode)this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyObject = this.yyv[this.yysp - 1].yyObject;
				return;
			case 184:
				this.yyval.yyObject = new List<TMdxExpNode>();
				return;
			case 185:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxWhenNode.getId(), this.yyv[this.yysp - 2].yyTParseTreeNode, this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 3].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 186:
				this.yyval.yyTParseTreeNode = this.yyv[this.yysp].yyTParseTreeNode;
				return;
			case 187:
				this.yyval.yyTParseTreeNode = null;
				return;
			case 188:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxBinOpNode.getId(), this.yyv[this.yysp - 1].yyTSourceToken, this.yyv[this.yysp - 2].yyTParseTreeNode, this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 2].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 189:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 190:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 191:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxEmptyNode.getId());
				return;
			case 192:
				this.yyval.yyObject = new List<TMdxExpNode>
				{
					(TMdxExpNode)this.yyv[this.yysp].yyTParseTreeNode
				};
				return;
			case 193:
				((List<TMdxExpNode>)this.yyv[this.yysp - 2].yyObject).Add((TMdxExpNode)this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyObject = this.yyv[this.yysp - 2].yyObject;
				return;
			case 194:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 195:
				this.yyval.yyObject = new List<TMdxExpNode>();
				return;
			case 196:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 197:
				this.yyval.yyTParseTreeNode = this.yyv[this.yysp - 1].yyTParseTreeNode;
				return;
			case 198:
				if (this.yyv[this.yysp - 2].yyTParseTreeNode is TMdxIdentifierNode)
				{
					this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxSelectNode.getId(), (List<TMdxWithNode>)this.yyv[this.yysp - 6].yyObject, (List<TMdxAxisNode>)this.yyv[this.yysp - 4].yyObject, this.yyv[this.yysp - 2].yyTParseTreeNode, null, this.yyv[this.yysp - 1].yyTParseTreeNode, (List<TMdxExpNode>)this.yyv[this.yysp].yyObject);
				}
				else
				{
					this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxSelectNode.getId(), (List<TMdxWithNode>)this.yyv[this.yysp - 6].yyObject, (List<TMdxAxisNode>)this.yyv[this.yysp - 4].yyObject, null, this.yyv[this.yysp - 2].yyTParseTreeNode, this.yyv[this.yysp - 1].yyTParseTreeNode, (List<TMdxExpNode>)this.yyv[this.yysp].yyObject);
				}
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 5].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setStartToken<TMdxWithNode>((List<TMdxWithNode>)this.yyv[this.yysp - 6].yyObject);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp - 2].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp - 1].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken<TMdxExpNode>((List<TMdxExpNode>)this.yyv[this.yysp].yyObject);
				return;
			case 199:
				this.yyval.yyObject = this.yyv[this.yysp].yyObject;
				return;
			case 200:
				this.yyval.yyObject = null;
				return;
			case 201:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 202:
				this.yyval.yyObject = null;
				return;
			case 203:
				this.yyval.yyObject = new List<TMdxAxisNode>
				{
					(TMdxAxisNode)this.yyv[this.yysp].yyTParseTreeNode
				};
				return;
			case 204:
				((List<TMdxAxisNode>)this.yyv[this.yysp - 2].yyObject).Add((TMdxAxisNode)this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyObject = this.yyv[this.yysp - 2].yyObject;
				return;
			case 205:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxWhereNode.getId(), this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 206:
				this.yyval.yyTParseTreeNode = null;
				return;
			case 207:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 208:
				this.yyval.yyObject = null;
				return;
			case 209:
				this.yyval.yyObject = new List<TMdxWithNode>
				{
					(TMdxWithNode)this.yyv[this.yysp].yyTParseTreeNode
				};
				return;
			case 210:
				((List<TMdxWithNode>)this.yyv[this.yysp - 1].yyObject).Add((TMdxWithNode)this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyObject = this.yyv[this.yysp - 1].yyObject;
				return;
			case 211:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 212:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 213:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxWithMemberNode.getId(), this.yyv[this.yysp - 3].yyTParseTreeNode, this.yyv[this.yysp - 1].yyTParseTreeNode, (List<TMdxCalcPropNode>)this.yyv[this.yysp].yyObject);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 4].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp - 1].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken<TMdxCalcPropNode>((List<TMdxCalcPropNode>)this.yyv[this.yysp].yyObject);
				return;
			case 214:
				((TMdxIdentifierNode)this.yyv[this.yysp - 3].yyTParseTreeNode).insertAt((IMdxIdentifierSegment)this.nf.createNode(ENodeType.T_MdxNameSegment.getId(), this.yyv[this.yysp - 5].yyTSourceToken, EMdxQuoting.UNQUOTED), 0);
				((TMdxIdentifierNode)this.yyv[this.yysp - 3].yyTParseTreeNode).setStartToken(this.yyv[this.yysp - 5].yyTSourceToken);
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxWithMemberNode.getId(), this.yyv[this.yysp - 3].yyTParseTreeNode, this.yyv[this.yysp - 1].yyTParseTreeNode, (List<TMdxCalcPropNode>)this.yyv[this.yysp].yyObject);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 6].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp - 1].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken<TMdxCalcPropNode>((List<TMdxCalcPropNode>)this.yyv[this.yysp].yyObject);
				return;
			case 215:
				this.yyval.yyObject = this.yyv[this.yysp].yyObject;
				return;
			case 216:
				this.yyval.yyObject = null;
				return;
			case 217:
				this.yyval.yyObject = new List<TMdxCalcPropNode>
				{
					(TMdxCalcPropNode)this.yyv[this.yysp].yyTParseTreeNode
				};
				return;
			case 218:
				((List<TMdxCalcPropNode>)this.yyv[this.yysp - 2].yyObject).Add((TMdxCalcPropNode)this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyObject = this.yyv[this.yysp - 2].yyObject;
				return;
			case 219:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 220:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxCalcPropNode.getId(), this.nf.createNode(ENodeType.T_MdxIdentifierNode.getId(), this.yyv[this.yysp - 2].yyTParseTreeNode), this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 2].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 221:
				this.tmpnode = this.nf.createNode(ENodeType.T_MdxIdentifierNode.getId(), this.nf.createNode(ENodeType.T_MdxNameSegment.getId(), this.yyv[this.yysp - 2].yyTSourceToken, EMdxQuoting.UNQUOTED));
				this.tmpnode2 = this.nf.createNode(ENodeType.T_MdxIdentifierNode.getId(), this.nf.createNode(ENodeType.T_MdxNameSegment.getId(), this.yyv[this.yysp].yyTSourceToken, EMdxQuoting.UNQUOTED));
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxCalcPropNode.getId(), this.tmpnode, this.tmpnode2);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 2].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTSourceToken);
				return;
			case 222:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxWithSetNode.getId(), this.yyv[this.yysp - 2].yyTParseTreeNode, this.yyv[this.yysp].yyTParseTreeNode, null);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 3].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 223:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 224:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxAxisNode.getId(), this.yyv[this.yysp - 4].yyTParseTreeNode, this.yyv[this.yysp - 3].yyTParseTreeNode, this.yyv[this.yysp - 2].yyTParseTreeNode, this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 3].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 4].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 225:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxAxisNode.getId(), this.yyv[this.yysp - 4].yyTParseTreeNode, this.yyv[this.yysp - 3].yyTParseTreeNode, this.yyv[this.yysp - 2].yyTParseTreeNode, this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 3].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 4].yyTParseTreeNode);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTParseTreeNode);
				return;
			case 226:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxNonEmptyNode.getId());
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 1].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTSourceToken);
				return;
			case 227:
				this.yyval.yyTParseTreeNode = null;
				return;
			case 228:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxAxis.getId(), EMdxAxisType.Columns);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTSourceToken);
				return;
			case 229:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxAxis.getId(), EMdxAxisType.Rows);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTSourceToken);
				return;
			case 230:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxAxis.getId(), EMdxAxisType.Pages);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTSourceToken);
				return;
			case 231:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxAxis.getId(), EMdxAxisType.Sections);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTSourceToken);
				return;
			case 232:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxAxis.getId(), EMdxAxisType.Chapters);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTSourceToken);
				return;
			case 233:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxAxis.getId(), EMdxAxisType.Ordinal);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTSourceToken);
				return;
			case 234:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxAxis.getId(), EMdxAxisType.Axis, this.yyv[this.yysp - 1].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 3].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp - 1].yyTSourceToken);
				return;
			case 235:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxNonEmptyNode.getId(), (List<TMdxIdentifierNode>)this.yyv[this.yysp].yyObject);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 1].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp - 2].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken<TMdxIdentifierNode>((List<TMdxIdentifierNode>)this.yyv[this.yysp].yyObject);
				return;
			case 236:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 237:
				this.yyval.yyTSourceToken = null;
				return;
			case 238:
				this.yyval.yyObject = new List<TMdxIdentifierNode>
				{
					(TMdxIdentifierNode)this.yyv[this.yysp].yyTParseTreeNode
				};
				return;
			case 239:
				((List<TMdxIdentifierNode>)this.yyv[this.yysp - 2].yyObject).Add((TMdxIdentifierNode)this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyObject = this.yyv[this.yysp - 2].yyObject;
				return;
			case 240:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 241:
				this.yyval.yyObject = new List<TMdxIdentifierNode>
				{
					(TMdxIdentifierNode)this.yyv[this.yysp].yyTParseTreeNode
				};
				return;
			case 242:
				((List<TMdxIdentifierNode>)this.yyv[this.yysp - 2].yyObject).Add((TMdxIdentifierNode)this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyObject = this.yyv[this.yysp - 2].yyObject;
				return;
			case 243:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 244:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 245:
				this.yyval.yyObject = this.yyv[this.yysp].yyObject;
				return;
			case 246:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 248:
				this.yyval.yyObject = new List<TMdxExpNode>
				{
					(TMdxExpNode)this.yyv[this.yysp].yyTParseTreeNode
				};
				return;
			case 249:
				((List<TMdxExpNode>)this.yyv[this.yysp - 2].yyObject).Add((TMdxExpNode)this.yyv[this.yysp].yyTParseTreeNode);
				this.yyval.yyObject = this.yyv[this.yysp - 2].yyObject;
				return;
			case 250:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 251:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 252:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 253:
				this.yyval.yyTParseTreeNode = null;
				return;
			case 254:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 255:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 256:
				this.yyval.copy(this.yyv[this.yysp - 2]);
				return;
			case 257:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 259:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxIntegerConstNode.getId(), this.yyv[this.yysp].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTSourceToken);
				return;
			case 260:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxStringConstNode.getId(), this.yyv[this.yysp].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTSourceToken);
				return;
			case 261:
				this.yyval.yyTParseTreeNode = this.nf.createNode(ENodeType.T_MdxFloatConstNode.getId(), this.yyv[this.yysp].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setStartToken(this.yyv[this.yysp].yyTSourceToken);
				this.yyval.yyTParseTreeNode.setEndToken(this.yyv[this.yysp].yyTSourceToken);
				return;
			case 262:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 263:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 264:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 265:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 266:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 267:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 268:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 269:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 270:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 271:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 272:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 273:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 274:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 275:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 276:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 277:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 278:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 279:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 280:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 281:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 282:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 283:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 284:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 285:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 286:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 287:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 288:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 289:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 290:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 291:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 292:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 293:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 294:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 295:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 296:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 297:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 298:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 299:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 300:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 301:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 302:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 303:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 304:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 305:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 306:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 307:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 308:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 309:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 310:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 311:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 312:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 313:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 314:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 315:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 316:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 317:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 318:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 319:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 320:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 321:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 322:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 323:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 324:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 325:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 326:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 327:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 328:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 329:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 330:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 331:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 332:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 333:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 334:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 335:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 336:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 337:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 338:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 339:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 340:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 341:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 342:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 343:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 344:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 345:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 346:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 347:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 348:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 349:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 350:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 351:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 352:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 353:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 354:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 355:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 356:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 357:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 358:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 359:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 360:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 361:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 362:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 363:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 364:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 365:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 366:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 367:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 368:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 369:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 370:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 371:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 372:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 373:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 374:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 375:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 376:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 377:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 378:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 379:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 380:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 381:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 382:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 383:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 384:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 385:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 386:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 387:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 388:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 389:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 390:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 391:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 392:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 393:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 394:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 395:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 396:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 397:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 398:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 399:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 400:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 401:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 402:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 403:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 404:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 405:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 406:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 407:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 408:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 409:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 410:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 411:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 412:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 413:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 414:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 415:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 416:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 417:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 418:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 419:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 420:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 421:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 422:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 423:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 424:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 425:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 426:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 427:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 428:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 429:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 430:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 431:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 432:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 433:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 434:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 435:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 436:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 437:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 438:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 439:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 440:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 441:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 442:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 443:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 444:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 445:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 446:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 447:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 448:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 449:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 450:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 451:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 452:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 453:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 454:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 455:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 456:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 457:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 458:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 459:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 460:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 461:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 462:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 463:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 464:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 465:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 466:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 467:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 468:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 469:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 470:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 471:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 472:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 473:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 474:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 475:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 476:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 477:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 478:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 479:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 480:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 481:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 482:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 483:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 484:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 485:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 486:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 487:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 488:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 489:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 490:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 491:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 492:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 493:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 494:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 495:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 496:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 497:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 498:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 499:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 500:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 501:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 502:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 503:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 504:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 505:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 506:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 507:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 508:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 509:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 510:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 511:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 512:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 513:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 514:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 515:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 516:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 517:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 518:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 519:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 520:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 521:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 522:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 523:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 524:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 525:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 526:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 527:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 528:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 529:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 530:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 531:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 532:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 533:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 534:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 535:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 536:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 537:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 538:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 539:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 540:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 541:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 542:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 543:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 544:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 545:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 546:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 547:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 548:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 549:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 550:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 551:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 552:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 553:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 554:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 555:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 556:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 557:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 558:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 559:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 560:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 561:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 562:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 563:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 564:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 565:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 566:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 567:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 568:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 569:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 570:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 571:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 572:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 573:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 574:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 575:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 576:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 577:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 578:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 579:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 580:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 581:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 582:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 583:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 584:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 585:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 586:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 587:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 588:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 589:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 590:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 591:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 592:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 593:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 594:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 595:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 596:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 597:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 598:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 599:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 600:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 601:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 602:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 603:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 604:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 605:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 606:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 607:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 608:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 609:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 610:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 611:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 612:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 613:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 614:
				this.yyval.copy(this.yyv[this.yysp]);
				return;
			case 615:
				this.yyval.copy(this.yyv[this.yysp]);
				break;
			default:
				return;
			}
		}

		// Token: 0x04000F94 RID: 3988
		internal static int yynacts;

		// Token: 0x04000F95 RID: 3989
		internal static int yyngotos;

		// Token: 0x04000F96 RID: 3990
		internal static int yynstates;

		// Token: 0x04000F97 RID: 3991
		internal static int yynrules;

		// Token: 0x04000F98 RID: 3992
		internal static int[] yya_sym;

		// Token: 0x04000F99 RID: 3993
		internal static int[] yya_act;

		// Token: 0x04000F9A RID: 3994
		internal static int[] yyr_len;

		// Token: 0x04000F9B RID: 3995
		internal static int[] yyr_sym;

		// Token: 0x04000F9C RID: 3996
		internal static int[] yyg_sym;

		// Token: 0x04000F9D RID: 3997
		internal static int[] yyg_act;

		// Token: 0x04000F9E RID: 3998
		internal static int[] yyd;

		// Token: 0x04000F9F RID: 3999
		internal static int[] yyal;

		// Token: 0x04000FA0 RID: 4000
		internal static int[] yyah;

		// Token: 0x04000FA1 RID: 4001
		internal static int[] yygl;

		// Token: 0x04000FA2 RID: 4002
		internal static int[] yygh;

		// Token: 0x04000FA3 RID: 4003
		internal static string table_file = "/SharpSqlAnalyzer/parser/mdx/mdx_yacc_table.txt";
	}
}
